home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stngpasm / pure_c / include / uran / uran_dos.sh < prev    next >
Encoding:
Text File  |  1997-08-10  |  13.6 KB  |  610 lines

  1. ;----------------------------------------------------------------------------
  2. ;File name:    URAn_DOS.SH            Revision date:    1997.08.10
  3. ;Creator:    Ulf Ronald Andersson        Creation date:    1991.01.02
  4. ;(c)1991 by:    Ulf Ronald Andersson        All rights reserved
  5. ;Released as:    FREEWARE            (commercial sale forbidden)
  6. ;----------------------------------------------------------------------------
  7. ;Purpose:    Symbol & Macro library for GEMDOS, XBIOS, and BIOS functions
  8. ;----------------------------------------------------------------------------
  9. ;Required header declarations:
  10. ;
  11. ;    include    "uran\STRUCT.SH"
  12. ;    include    "uran\URAn_SYS.SH"
  13. ;    include    "uran\URAn_DOS.SH"
  14. ;
  15. ;----------------------------------------------------------------------------
  16. ;    GEMDOS DEFINITIONS
  17. ;
  18. ;trap<<20 + args<<16 + ptrbits<<12 + longbits<<8 + opcode
  19. ;
  20. Pterm0        equ    $100000
  21. Cconin        equ    $100001
  22. Cconout        equ    $110002
  23. Cauxin        equ    $100003
  24. Cauxout        equ    $110004
  25. Cprnout        equ    $110005
  26. Crawio        equ    $110006
  27. Crawcin        equ    $100007
  28. Cnecin        equ    $100008
  29. Cconws        equ    $111009
  30. Cconrs        equ    $11100A
  31. Cconis        equ    $10000B
  32. Dsetdrv        equ    $11000E
  33. Cconos        equ    $100010
  34. Cprnos        equ    $100011
  35. Cauxis        equ    $100012
  36. Cauxos        equ    $100013
  37. ; Maddalt    equ    $14    ;???
  38. Dgetdrv        equ    $100019
  39. Fsetdta        equ    $11101A
  40. Super        equ    $111020
  41. Tgetdate    equ    $10002A
  42. Tsetdate    equ    $11002B
  43. Tgettime    equ    $10002C
  44. Tsettime    equ    $11002D
  45. Fgetdta        equ    $10002F
  46. Sversion    equ    $100030
  47. Ptermres    equ    $120131
  48. Dfree        equ    $121036
  49. Dcreate        equ    $111039
  50. Ddelete        equ    $11103A
  51. Dsetpath    equ    $11103B
  52. Fcreate        equ    $12103C
  53. Fopen        equ    $12103D
  54. Fclose        equ    $11003E
  55. Fread        equ    $13423F
  56. Fwrite        equ    $134240
  57. Fdelete        equ    $111041
  58. Fseek        equ    $130142
  59. Fattrib        equ    $131043
  60. Mxalloc        equ    $120144    ;very modern TOS only
  61. Fdup        equ    $110045
  62. Fforce        equ    $120046
  63. Dgetpath    equ    $121047
  64. Malloc        equ    $110148
  65. Mfree        equ    $111049
  66. Mshrink        equ    $13244A
  67. Pexec        equ    $14E04B
  68. Pterm        equ    $11004C
  69. Fsfirst        equ    $12104E
  70. Fsnext        equ    $10004F
  71. Frename        equ    $136056
  72. Fdatime        equ    $131057
  73. ;
  74. ;
  75. ;----------------------------------------------------------------------------
  76. ;    BIOS DEFINITIONS
  77. ;
  78. ;trap<<20 + args<<16 + ptrbits<<12 + longbits<<8 + opcode
  79. ;
  80. Getmpb        equ    $D11000
  81. Bconstat    equ    $D10001
  82. Bconin        equ    $D10002
  83. Bconout        equ    $D20003
  84. Rwabs        equ    $D52004
  85. Setexc        equ    $D22005
  86. Tickal        equ    $D00006
  87. Getbpb        equ    $D10007
  88. Bcostat        equ    $D10008
  89. Mediach        equ    $D10009
  90. Drvmap        equ    $D0000A
  91. Kbshift        equ    $D1000B
  92. ;
  93. ;
  94. ;----------------------------------------------------------------------------
  95. ;    XBIOS DEFINITIONS
  96. ;
  97. ;trap<<20 + args<<16 + ptrbits<<12 + longbits<<8 + opcode
  98. ;
  99. Initmous    equ    $E36000
  100. Ssbrk        equ    $E20001
  101. Physbase    equ    $E00002
  102. Logbase        equ    $E00003
  103. Getrez        equ    $E00004
  104. Setscreen    equ    $E33005
  105. Setpallete    equ    $E11006
  106. Setpalette    equ    $E11006
  107. Setcolor    equ    $E20007
  108. Floprd        equ    $E71208
  109. Flopwr        equ    $E71209
  110. Flopfmt        equ    $E71F0A
  111. ;; CLR_D0        equ    $E0000B
  112. Midiws        equ    $E2200C
  113. Mfpint        equ    $E2200D
  114. Iorec        equ    $E1000E
  115. Rsconf        equ    $E6000F
  116. Keytbl        equ    $E37010
  117. Random        equ    $E00011
  118. Protobt        equ    $E41212
  119. Flopver        equ    $E71213
  120. Scrdmp        equ    $E00014
  121. Cursconf    equ    $E20015
  122. Settime        equ    $E10116
  123. Gettime        equ    $E00017
  124. Bioskeys    equ    $E00018
  125. Ikbdws        equ    $E22019
  126. Jdisint        equ    $E1001A
  127. Jenabint    equ    $E1001B
  128. Giaccess    equ    $E2001C
  129. Offgibit    equ    $E1001D
  130. Ongibit        equ    $E1001E
  131. Xbtimer        equ    $E4801F
  132. Dosound        equ    $E11020
  133. Setprt        equ    $E10021
  134. Kbdvbase    equ    $E00022
  135. Kbrate        equ    $E20023
  136. Prtblk        equ    $E11024
  137. Vsync        equ    $E00025
  138. Supexec        equ    $E11026
  139. Puntaes        equ    $E00027
  140. Floprate    equ    $E20029     ;STE & Rainbow TOS
  141. ;-------------------------------------
  142. ; Dmaread    equ    $E4412A    ;=> E_INVFN if absent
  143. ; Dmawrite    equ    $E4412B    ;=> E_INVFN if absent
  144. ;-------------------------------------
  145. Bconmap        equ    $E1002C    ;-2=>struct  -1=>currdev  0=>test  6=>ST-port  7=>SCC_B  8=>TTMFP  9=>SCC_A
  146. ;-------------------------------------
  147. ; Nvmaccess    equ    $2E    ;???
  148. ;-------------------------------------
  149. ;0 VOID Metainit ( META_INFO_1 *buffer );
  150. ;1 LONG Metaopen ( SHORT drive, META_DRVINFO *buffer );
  151. ;2 LONG Metaclose ( SHORT drive );
  152. ;3 LONG Metaread ( SHORT drive, VOID *buffer, LONG blockno, SHORT count );
  153. ;4 LONG Metawrite ( SHORT drive, VOID *buffer, LONG blockno, SHORT count );
  154. ;5
  155. ;6 LONG Metastatus ( SHORT drive, VOID *buffer );
  156. ;7 LONG Metaioctl ( SHORT drive, LONG magic, SHORT opcode, VOID *buffer );
  157. ;8
  158. ;9
  159. ;A
  160. ;B LONG Metastartaudio ( SHORT drive, SHORT flag, UBYTE *bytes_p);
  161. ;C LONG Metastopaudio ( SHORT drive );
  162. ;D LONG Metasetsongtime (SHORT drive,SHORT repeat,LONG starttime,LONG endtime );
  163. ;E LONG Metagettoc ( SHORT drive, SHORT flag, CD_TOC_ENTRY *buffer );
  164. ;F LONG Metadiscinfo ( SHORT drive, CD_DISC_INFO *p );
  165. ;-------------------------------------
  166. Metainit    equ    $E11030
  167. Metaopen    equ    $E22031
  168. Metaclose    equ    $E10032
  169. Metaread    equ    $E42433
  170. Metawrite    equ    $E42434
  171. ;code $35 is unknown
  172. Metastatus    equ    $E22036
  173. Metaioctl    equ    $E48237
  174. ;code $38 is unknown
  175. ;code $39 is unknown
  176. ;code $3A is unknown
  177. Metastartaudio    equ    $E3403B    ;use: flag=0  bytes_p[2]={songs,startsong}
  178. Metastopaudio    equ    $E1003C
  179. Metasetsongtime    equ    $E40C3D
  180. Metagettoc    equ    $E3403E
  181. Metadiscinfo    equ    $E2203F
  182. ;-------------------------------------
  183. Blitmode    equ    $E10040    ;all late TOS
  184. ; Esetshift    equ    $50    ;???
  185. ; Egetshift    equ    $51    ;???
  186. Esetbank    equ    $E10052    ;TT ?
  187. ; Esetcolor    equ    $53    ;???
  188. ; Esetpalette    equ    $54    ;???
  189. ; Egetpalette    equ    $55    ;???
  190. Esetgray    equ    $E10056    ;TT ?
  191. ; Esetsmear    equ    $57    ;???
  192. ; ???        ?    $58    ;??? Used by NVDI
  193. ;
  194. ;----------------------------------------------------------------------------
  195. ;    Error code definitions
  196. ;
  197. E_OK        equ      0
  198. E_ERROR        equ     -1
  199. E_DRVNR        equ     -2
  200. E_UNCMD        equ     -3
  201. E_CRC        equ     -4
  202. E_BADRQ        equ     -5
  203. E_SEEK        equ     -6
  204. E_MEDIA        equ     -7
  205. E_SECNF        equ     -8
  206. E_PAPER        equ     -9
  207. E_WRITF        equ    -10
  208. E_READF        equ    -11
  209. E_WRPRO        equ    -12
  210. ; ???        equ    -13
  211. E_CHNG        equ    -14
  212. E_UNDEV        equ    -15
  213. E_BADSF        equ    -16
  214. E_OTHER        equ    -17
  215. ;
  216. ;    --------
  217. ;
  218. E_INVFN        equ    -32
  219. E_FILNF        equ    -33
  220. E_PTHNF        equ    -34
  221. E_NHNDL        equ    -35
  222. E_ACCDN        equ    -36
  223. E_IHNDL        equ    -37
  224. ; ???        equ    -38
  225. E_NSMEM        equ    -39
  226. E_IMBA        equ    -40
  227. ; ???        equ    -41
  228. E_DFULL        equ    -42
  229. ; ???        equ    -43
  230. ; ???        equ    -44
  231. ; ???        equ    -45
  232. E_DRIVE        equ    -46
  233. ; ???        equ    -47
  234. E_NSAME        equ    -48
  235. E_NMFIL        equ    -49
  236. ;
  237. ;    --------
  238. ;
  239. E_RANGE        equ    -64
  240. E_NAMETOOLONG    equ    E_RANGE
  241. E_INTRN        equ    -65
  242. E_PLFMT        equ    -66
  243. E_GSBF        equ    -67
  244. ;
  245. ;    --------
  246. ;
  247. E_LOCK        equ    -58    ;NB: changed from E_LOCKED due to STiK symbol
  248. E_NSLOCK    equ    -59
  249. E_LOOP        equ    -80
  250. E_MOUNT        equ    -200
  251. ;
  252. ;
  253. ;----------------------------------------------------------------------------
  254. ;    Boot sector offsets
  255. ;
  256.     struct    boot_sector
  257.     d_w    bs_codebra    ;$00  w $60xx
  258.     d_s    bs_filler,6    ;$02 6b
  259.     d_s    bs_serial,3    ;$08 3b
  260.     d_ow    bs_sectbytes    ;$0b iw
  261.     d_b    bs_clust_sects    ;$0d  b
  262.     d_ow    bs_boot_sects    ;$0e iw
  263.     d_b    bs_disk_FATs    ;$10  b
  264.     d_ow    bs_root_files    ;$11 iw
  265.     d_ow    bs_disk_sects    ;$13 iw
  266.     d_b    bs_media    ;$15  b
  267.     d_w    bs_FAT_sects    ;$16 iw
  268.     d_w    bs_track_sects    ;$18 iw
  269.     d_w    bs_disk_sides    ;$1a iw
  270.     d_w    bs_hide_sects    ;$1c iw
  271. ; next follows the part used only by executable boots
  272.     d_alias    bs_textbeg    ;$1e program
  273. ; next follow definitions used only by executable boots of a special kind
  274.     d_w    bs_execflg    ;$1e   w
  275.     d_w    bs_ldmode    ;$20   w
  276.     d_w    bs_ssect    ;$22   w
  277.     d_w    bs_sectcnt    ;$24   w
  278.     d_l    bs_ldaddr    ;$26   L
  279.     d_l    bs_fatbuf    ;$2a   L
  280.     d_s    bs_fname,11    ;$2e 11b
  281.     d_b    bs_fname_end    ;$39   b
  282.     d_s    bs_bootprog,512-bs_bootprog    ;$3a .. $1ff
  283.     d_end    boot_sector
  284. ;
  285. ;
  286. ;----------------------------------------------------------------------------
  287. ;    BPB offsets
  288. ;
  289.     struct    bpb_struct
  290.     d_w    bpb_sect_bytes    ;typ:  512
  291.     d_w    bpb_clust_sects    ;typ:    2
  292.     d_w    bpb_clust_bytes    ;typ: 1024
  293.     d_w    bpb_root_sects    ;typ:    7
  294.     d_w    bpb_FAT_sects    ;typ:    5
  295.     d_w    bpb_FAT2_start    ;typ:    6
  296.     d_w    bpb_data_start    ;typ:   18 = 2*5 + 7 + 1
  297.     d_w    bpb_data_clusts    ;typ:  711 = 720 - 18/2
  298.     d_w    bpb_flag    ;b0==16bit_FAT/12bit_FAT typ: 0
  299.     d_alias    bpb_size
  300.     d_end    bpb_struct
  301. ;
  302. ;NB: data_start = FAT_sects*2 + root_sects + 1  rounded up for clust_sects alignment
  303. ;NB: data_clusts= Total_clusts - data_start/clust_sect
  304. ;
  305. ;
  306. ;----------------------------------------------------------------------------
  307. ;    Directory offsets
  308. ;
  309.     struct    dir_struct
  310.     d_s    dir_fname,8    ;first char $00==unused $E5==erased
  311.     d_s    dir_fext,3
  312.     d_b    dir_fattr
  313.     d_s    dir_reserved,10
  314.     d_w    dir_ftime    ;iw
  315.     d_w    dir_fdate    ;iw
  316.     d_w    dir_fcluster    ;iw
  317.     d_l    dir_fsize    ;il
  318.     d_alias    dir_size
  319.     d_end    dir_struct
  320. ;
  321. ;
  322. ;----------------------------------------------------------------------------
  323. ;    DTA offsets
  324. ;
  325.     struct    dta_struct
  326.     d_s    dta_gname,12
  327.     d_l    dta_drive
  328.     d_w    dta_dbpos
  329.     d_w    dta_dsec0
  330.     d_b    dta_gattr
  331.     d_b    dta_fattr
  332.     d_w    dta_ftime
  333.     d_w    dta_fdate
  334.     d_l    dta_fsize
  335.     d_s    dta_fname,14
  336.     d_alias    dta_size
  337.     d_end    dta_struct
  338. ;
  339. ;
  340. ;----------------------------------------------------------------------------
  341. ;    Program file header offsets
  342. ;
  343.     struct    program_header
  344.     d_w    ph_codebra    ;always $601A
  345.     d_l    ph_textlen
  346.     d_l    ph_datalen
  347.     d_l    ph_bss_len
  348.     d_l    ph_symblen
  349.     d_l    ph_res1
  350.     d_alias    ph_flag        ;only TOS >= 1.4: bit 0 == fastload
  351.     d_l    ph_res2
  352.     d_w    ph_res3
  353.     d_alias    ph_textbeg
  354.     d_alias    ph_size
  355.     d_end    program_header
  356. ;
  357. ;
  358. ;----------------------------------------------------------------------------
  359. ;    Buffer Control Block offsets
  360. ;
  361.     struct    bcb_struct
  362.     d_l    bcb_link_p
  363.     d_w    bcb_drive
  364.     d_w    bcb_type
  365.     d_w    bcb_record
  366.     d_w    bcb_dirty
  367.     d_l    bcb_dm_p
  368.     d_l    bcb_data_p
  369.     d_alias    bcb_size
  370.     d_end    bcb_struct
  371. ;
  372. ;
  373. ;----------------------------------------------------------------------------
  374. ;    Basepage offsets
  375. ;
  376.     struct    basepage
  377.     d_l    bp_selfbeg_p
  378.     d_l    bp_selfend_p
  379.     d_l    bp_textbeg_p
  380.     d_l    bp_textlen
  381.     d_l    bp_databeg_p
  382.     d_l    bp_datalen
  383.     d_l    bp_bss_beg_p
  384.     d_l    bp_bss_len
  385.     d_l    bp_dta_p
  386.     d_l    bp_parent_p
  387.     d_l    bp_reserved
  388.     d_l    bp_environ_p
  389.     d_s    bp_undef,80
  390.     d_b    bp_arglen
  391.     d_s    bp_argstring,127
  392.     d_end    basepage
  393. ;
  394. ;
  395. ;----------------------------------------------------------------------------
  396. ;    MACRO DEFINITIONS
  397. ;
  398.     MACRO    gemdos    op,v2,v3,v4,v5
  399.     zz_prep_trap    op,v2,v3,v4,v5
  400.     trap    #zzDOSTR
  401.     ifne    op-Pterm0
  402.     ifne    op-Pterm
  403.     ifne    op-Ptermres
  404.     ifne    (zzDOSAS>0)&(zzSTkeep=0)
  405.     ifne    (zzDOSAS>8)|zzDUMBcomp
  406.     lea    zzDOSAS(sp),sp
  407.     else
  408.     addq    #zzDOSAS,sp
  409.     endif
  410.     endif
  411.     endif
  412.     endif
  413.     endif
  414.     ENDM
  415. ;
  416.     MACRO    sub_gemdos    op,v2,v3,v4,v5
  417.     zz_prep_trap    op,v2,v3,v4,v5
  418.     bsr    gemdos_sub
  419.     ifne    op-Pterm0
  420.     ifne    op-Pterm
  421.     ifne    op-Ptermres
  422.     ifne    (zzDOSAS>0)&(zzSTkeep=0)
  423.     ifne    (zzDOSAS>8)|zzDUMBcomp
  424.     lea    zzDOSAS(sp),sp
  425.     else
  426.     addq    #zzDOSAS,sp
  427.     endif
  428.     endif
  429.     endif
  430.     endif
  431.     endif
  432.     ENDM
  433. ;
  434.     MACRO    bios    op,v2,v3,v4,v5,v6
  435.     xbios    op,v2,v3,v4,v5,v6
  436.     ENDM
  437. ;
  438.     MACRO    sub_bios    op,v2,v3,v4,v5,v6
  439.     zz_prep_trap    op,v2,v3,v4,v5,v6
  440.     bsr    bios_sub
  441.     ifne    (zzDOSAS>0)&(zzSTkeep=0)
  442.     ifne    (zzDOSAS>8)|zzDUMBcomp
  443.     lea    zzDOSAS(sp),sp
  444.     else
  445.     addq    #zzDOSAS,sp
  446.     endif
  447.     endif
  448.     ENDM
  449. ;
  450.     MACRO    xbios    op,v2,v3,v4,v5,v6,v7,v8,v9,va
  451.     zz_prep_trap    op,v2,v3,v4,v5,v6,v7,v8,v9,va
  452.     trap    #zzDOSTR
  453.     ifne    (zzDOSAS>0)&(zzSTkeep=0)
  454.     ifne    (zzDOSAS>8)|zzDUMBcomp
  455.     lea    zzDOSAS(sp),sp
  456.     else
  457.     addq    #zzDOSAS,sp
  458.     endif
  459.     endif
  460.     ENDM
  461. ;
  462.     MACRO    sub_xbios    op,v2,v3,v4,v5,v6,v7,v8,v9,va
  463.     zz_prep_trap    op,v2,v3,v4,v5,v6,v7,v8,v9,va
  464.     bsr    xbios_sub
  465.     ifne    (zzDOSAS>0)&(zzSTkeep=0)
  466.     ifne    (zzDOSAS>8)|zzDUMBcomp
  467.     lea    zzDOSAS(sp),sp
  468.     else
  469.     addq    #zzDOSAS,sp
  470.     endif
  471.     endif
  472.     ENDM
  473. ;
  474.     MACRO    zz_prep_trap    op,v2,v3,v4,v5,v6,v7,v8,v9,va
  475. zzDOSIF    set    (op)&_ind
  476. zzDOSTR    set    ((op)>>20)&255
  477. zzDOSAC    set    ((op)>>16)&15
  478. zzDOSPF    set    ((op)>>12)&15
  479. zzDOSLF    set    ((op)>>08)&15
  480. zzDOSOP    set    (op)&255
  481. zzDOSAS    set    -zzSToff
  482.     IFNE    zzDOSAC>0
  483.     IFNE    zzDOSAC>1
  484.     IFNE    zzDOSAC>2
  485.     IFNE    zzDOSAC>3
  486.     IFNE    zzDOSAC>4
  487.     IFNE    zzDOSAC>5
  488.     IFNE    zzDOSAC>6
  489.     IFNE    zzDOSAC>7
  490.     IFNE    zzDOSAC>8
  491.     IFNE    zzDOSLF=15
  492. zzDOSLF    set    130
  493.     endif
  494.     DOSPUSH    8,va
  495.     endif
  496.     DOSPUSH    7,v9
  497.     endif
  498.     DOSPUSH    6,v8
  499.     endif
  500.     DOSPUSH    5,v7
  501.     endif
  502.     DOSPUSH    4,v6
  503.     endif
  504.     DOSPUSH    3,v5
  505.     endif
  506.     DOSPUSH    2,v4
  507.     endif
  508.     DOSPUSH    1,v3
  509.     endif
  510.     DOSPUSH    0,v2
  511.     endif
  512. zzDOSAS    set    zzDOSAS+2
  513.     ifne    1&zzDOSAS
  514.     .error    "Stack offset is odd"
  515.     endif
  516.     ifgt    zzDOSAS
  517.     MOVE    #zzDOSOP,-(sp)
  518.     else
  519.     ifeq    zzDOSAS
  520.     move    #zzDOSOP,(sp)
  521.     else
  522.     .error    "Stack offset is too large"
  523.     endif
  524.     endif
  525.     ENDM
  526. ;
  527. ;This macro handles all argument checking for bios, xbios & gemdos functions
  528. ;special argument cases are:
  529. ;no argument = .error error
  530. ;'()'    = Assumes argument is on stack already
  531. ;'!'    = Places 0 on stack using "clr"
  532. ;'?'    = Places -1 on stack
  533.     MACRO    DOSPUSH    v1,v2
  534. zzDOSAS    set    zzDOSAS+2
  535.     IFNE    (1<<v1)&(zzDOSPF|zzDOSLF)
  536. zzDOSAS    set    zzDOSAS+2
  537.     endif
  538.     ifne    1&zzDOSAS
  539.     .error    Stack offset is odd
  540.     endif
  541.     IFB    v2
  542.     .error    "Missing operand in system call"
  543.     exitm
  544.     endif
  545.     ifgt    zzDOSAS
  546.     IFNE    (1<<v1)&zzDOSPF
  547.     iflt    zzDOSAS-4
  548.     .error    "Pointer argument crosses stack offset"
  549.     endif
  550.     IFEQ    zzDOSIF
  551.     pea    v2
  552.     exitm
  553.     endif
  554.     move.l    v2,-(sp)
  555.     exitm
  556.     endif            ;ends pointer case
  557.     IFNE    (1<<v1)&zzDOSLF
  558.     iflt    zzDOSAS-4
  559.     .error    "Long argument crosses stack offset"
  560.     endif
  561.     move.l    v2,-(sp)
  562.     exitm
  563.     endif            ;ends long case
  564.     move    v2,-(sp)    ;ends word case
  565.     exitm
  566.     else        ;start stack offset cases    
  567.     ifeq    zzDOSAS
  568.     IFNE    (1<<v1)&zzDOSPF
  569.     IFEQ    zzDOSIF
  570.     addq    #4,sp
  571.     pea    v2
  572.     exitm
  573.     endif
  574.     move.l    v2,(sp)
  575.     exitm
  576.     endif            ;ends pointer case
  577.     IFNE    (1<<v1)&zzDOSLF
  578.     move.l    v2,(sp)
  579.     exitm
  580.     endif            ;ends long case
  581.     move    v2,(sp)    ;ends word case
  582.     exitm
  583.     else        ;handle negative offset levels
  584.     IFNE    (1<<v1)&zzDOSPF
  585.     IFEQ    zzDOSIF
  586.     move.l    #v2,-zzDOSAS(sp)
  587.     exitm
  588.     endif
  589.     move.l    v2,-zzDOSAS(sp)
  590.     exitm
  591.     endif            ;ends pointer case
  592.     IFNE    (1<<v1)&zzDOSLF
  593.     move.l    v2,-zzDOSAS(sp)
  594.     exitm
  595.     endif            ;ends long case
  596.     move    v2,-zzDOSAS(sp)    ;ends word case
  597.     exitm
  598.     endif
  599.     endif
  600.     ENDM
  601. ;
  602. zzDOSAS        set    0
  603. zzSToff        set    0
  604. zzSTkeep    set    0
  605. zzDUMBcomp    set    0
  606. ;
  607. ;----------------------------------------------------------------------------
  608. ;End of file:    URAn_DOS.SH
  609. ;----------------------------------------------------------------------------
  610.